///*
// * Decompiled with CFR.
// *
// * Could not load the following classes:
// *  proxy.api.ITrainStation
// */
//package com.sun.proxy;
//
//import java.lang.reflect.InvocationHandler;
//import java.lang.reflect.Method;
//import java.lang.reflect.Proxy;
//import java.lang.reflect.UndeclaredThrowableException;
//import proxy.api.ITrainStation;
//
//public final class $Proxy0 extends Proxy implements ITrainStation {
//    private static Method m1;
//    private static Method m2;
//    private static Method m3;
//    private static Method m0;
//
//    public $Proxy0(InvocationHandler invocationHandler) {
//        super(invocationHandler);
//    }
//
//    public final boolean equals(Object object) {
//        try {
//            return (Boolean)this.h.invoke(this, m1, new Object[]{object});
//        }
//        catch (Error | RuntimeException throwable) {
//            throw throwable;
//        }
//        catch (Throwable throwable) {
//            throw new UndeclaredThrowableException(throwable);
//        }
//    }
//
//    public final String toString() {
//        try {
//            return (String)this.h.invoke(this, m2, null);
//        }
//        catch (Error | RuntimeException throwable) {
//            throw throwable;
//        }
//        catch (Throwable throwable) {
//            throw new UndeclaredThrowableException(throwable);
//        }
//    }
//
//    public final void sell() {
//        try {
//            this.h.invoke(this, m3, null);
//            return;
//        }
//        catch (Error | RuntimeException throwable) {
//            throw throwable;
//        }
//        catch (Throwable throwable) {
//            throw new UndeclaredThrowableException(throwable);
//        }
//    }
//
//    public final int hashCode() {
//        try {
//            return (Integer)this.h.invoke(this, m0, null);
//        }
//        catch (Error | RuntimeException throwable) {
//            throw throwable;
//        }
//        catch (Throwable throwable) {
//            throw new UndeclaredThrowableException(throwable);
//        }
//    }
//
//    static {
//        try {
//            m1 = Class.forName("java.lang.Object").getMethod("equals", Class.forName("java.lang.Object"));
//            m2 = Class.forName("java.lang.Object").getMethod("toString", new Class[0]);
//            m3 = Class.forName("proxy.api.ITrainStation").getMethod("sell", new Class[0]);
//            m0 = Class.forName("java.lang.Object").getMethod("hashCode", new Class[0]);
//            return;
//        }
//        catch (NoSuchMethodException noSuchMethodException) {
//            throw new NoSuchMethodError(noSuchMethodException.getMessage());
//        }
//        catch (ClassNotFoundException classNotFoundException) {
//            throw new NoClassDefFoundError(classNotFoundException.getMessage());
//        }
//    }
//}